Adsk Contrib - Add support for ARM Neon intrinsics and Universal builds#1775
Conversation
Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>
…s to fix issues with NaN handling. Fixing issues in the unit tests for some tests. For some tests, the neon implementation is matching the C++ implementation instead of the SSE2 implementation. Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>
Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>
Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>
Now check for OCIO_USE_SSE and HAVE_NEON before integrating sse2neon to the build. Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>
…d on Apple and might interfere with optimization if not careful. Updated CheckSupportSSE2.cmake and adding some checks in SSE.h to support universal build. Added comments and new define (USING_INTEL_SSE, USING_ARM_NEON and USING_CPP) in LogOpCPU_tests which should help with understand what is going on. Checking for SSE2 and ARM Neon only when OCIO_USE_SSE is ON. Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>
Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>
Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>
…SE_SSE (they are sync up). Will replace OCIO_USE_SSE eventually. Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>
Reverted defined changes in LogOpCPU_tests Updated ocio.bat with OCIO_USE_SIMD Minors comments changes Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>
Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>
Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>
Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>
documentation tweak Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>
Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>
Signed-off-by: Cédrik Fuoco <105517825+cedrik-fuoco-adsk@users.noreply.github.com>
Removing Findsse2neon as it is not needed Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>
Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>
…s to fix issues with NaN handling. Fixing issues in the unit tests for some tests. For some tests, the neon implementation is matching the C++ implementation instead of the SSE2 implementation. Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>
Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>
Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>
Now check for OCIO_USE_SSE and HAVE_NEON before integrating sse2neon to the build. Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>
…d on Apple and might interfere with optimization if not careful. Updated CheckSupportSSE2.cmake and adding some checks in SSE.h to support universal build. Added comments and new define (USING_INTEL_SSE, USING_ARM_NEON and USING_CPP) in LogOpCPU_tests which should help with understand what is going on. Checking for SSE2 and ARM Neon only when OCIO_USE_SSE is ON. Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>
Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>
Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>
…SE_SSE (they are sync up). Will replace OCIO_USE_SSE eventually. Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>
Reverted defined changes in LogOpCPU_tests Updated ocio.bat with OCIO_USE_SIMD Minors comments changes Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>
Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>
Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>
Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>
documentation tweak Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>
Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>
Removing Findsse2neon as it is not needed Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>
Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>
Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>
…d on Apple and might interfere with optimization if not careful. Updated CheckSupportSSE2.cmake and adding some checks in SSE.h to support universal build. Added comments and new define (USING_INTEL_SSE, USING_ARM_NEON and USING_CPP) in LogOpCPU_tests which should help with understand what is going on. Checking for SSE2 and ARM Neon only when OCIO_USE_SSE is ON. Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>
Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>
…SE_SSE (they are sync up). Will replace OCIO_USE_SSE eventually. Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>
Reverted defined changes in LogOpCPU_tests Updated ocio.bat with OCIO_USE_SIMD Minors comments changes Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>
Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>
Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>
Removing Findsse2neon as it is not needed Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>
Removing ocio_check_dependency_version.cmake as it is not needed anymore. Changed how we detect if the installed OpenEXR and OpenImageIO are compatible with OCIO. It should be more robust now. Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>
…/github.com/autodesk-forks/OpenColorIO into adsk_contrib/add-support-for-neon-intrinsic Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>
| set(is_OpenEXR_VERSION_valid FALSE) | ||
| # Check for compatibility between OpenEXR and OpenImageIO. | ||
| # Will set is_OpenEXR_VERSION_valid to TRUE if valid. | ||
| include(CheckForOpenEXRCompatibility) |
There was a problem hiding this comment.
Changed how we check the version of the OpenEXR used by OpenImageIO. This should be more robust and won't create any unwanted target or variables.
| @@ -1,38 +0,0 @@ | |||
| # SPDX-License-Identifier: BSD-3-Clause | |||
There was a problem hiding this comment.
removed in favour of CheckForOpenEXRCompatibility.cmake
|
The branch is now rebased and conflicts have been resolved. |
remia
left a comment
There was a problem hiding this comment.
Looks good to me @cedrik-fuoco-adsk, thank you for adding more comments to the SSE header. Have to say Rosetta is surprisingly good at handling the SSE x86_64 binary. I guess if we want to further optimise we would have to start more in depth profiling but the improvements we get seem already quite large as is.
…rge issue) Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>
Signed-off-by: Cédrik Fuoco <cedrik.fuoco@autodesk.com>
|
Hi all, I'd love to see these changes merged -- any remaining blockers? Thank you for your work on this, @cedrik-fuoco-adsk! |
|
Closing since #1828 replaces this PR |
This PR is about Add support for ARM Neon intrinsics #1753.
Note that at least another commit will be needed once Adsk contrib - Add support for minimum and recommended versions for dependencies is merged into the main branch.
Some performance results with a MacBook M1 (using a custom heavy_transform.clf):
